//package org.convallaria.system.biz.controller.auth;
//
//import io.swagger.v3.oas.annotations.Operation;
//import io.swagger.v3.oas.annotations.Parameter;
//import io.swagger.v3.oas.annotations.tags.Tag;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.convallaria.framework.common.result.ApiResult;
//import org.convallaria.framework.security.annotation.Anonymous;
//import org.convallaria.system.biz.entity.dto.CaptchaDTO;
//import org.convallaria.system.biz.service.auth.CaptchaService;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.Map;
//
///**
// * 验证码控制器
// * 展示优化后的验证码服务使用
// *
// * @author convallaria
// * @since 1.0.0
// */
//@Slf4j
//@RestController
//@RequestMapping("/captcha")
//@RequiredArgsConstructor
//@Tag(name = "验证码管理", description = "验证码生成、验证和管理API")
//public class CaptchaController {
//
//    private final CaptchaService captchaService;
//
//    /**
//     * 生成验证码
//     */
//    @Anonymous
//    @Operation(summary = "生成验证码", description = "生成图形验证码")
//    @GetMapping("/generate")
//    public ApiResult<CaptchaDTO> generateCaptcha() {
//        return ApiResult.success(captchaService.generateCaptcha());
//    }
//
//    /**
//     * 验证验证码
//     */
//    @Anonymous
//    @Operation(summary = "验证验证码", description = "验证用户输入的验证码")
//    @PostMapping("/validate")
//    public ApiResult<Map<String, Object>> validateCaptcha(
//            @Parameter(description = "验证码key", example = "uuid-string")
//            @RequestParam String captchaKey,
//            @Parameter(description = "验证码", example = "ABCD")
//            @RequestParam String captchaCode) {
//
//        log.info("验证验证码请求: captchaKey={}", captchaKey);
//
//        boolean isValid = captchaService.validateCaptcha(captchaKey, captchaCode);
//
//        return ApiResult.success(Map.of(
//                "success", isValid,
//                "message", isValid ? "验证码验证成功" : "验证码验证失败",
//                "captchaKey", captchaKey
//        ));
//    }
//
//    /**
//     * 检查验证码是否存在
//     */
//    @Anonymous
//    @Operation(summary = "检查验证码", description = "检查验证码是否存在且未过期")
//    @GetMapping("/exists")
//    public ApiResult<Map<String, Object>> checkCaptchaExists(
//            @Parameter(description = "验证码key", example = "uuid-string")
//            @RequestParam String captchaKey) {
//
//        boolean exists = captchaService.existsCaptcha(captchaKey);
//        long expireTime = captchaService.getCaptchaExpireTime(captchaKey);
//
//        return ApiResult.success(Map.of(
//                "exists", exists,
//                "expireTime", expireTime,
//                "message", exists ? "验证码存在" : "验证码不存在或已过期"
//        ));
//    }
//
//    /**
//     * 刷新验证码过期时间
//     */
//    @Anonymous
//    @Operation(summary = "刷新验证码", description = "刷新验证码的过期时间")
//    @PostMapping("/refresh")
//    public ApiResult<Map<String, Object>> refreshCaptcha(
//            @Parameter(description = "验证码key", example = "uuid-string")
//            @RequestParam String captchaKey) {
//
//        boolean refreshed = captchaService.refreshCaptchaExpire(captchaKey);
//
//        return ApiResult.success(Map.of(
//                "success", refreshed,
//                "message", refreshed ? "验证码过期时间已刷新" : "刷新失败，验证码可能不存在",
//                "captchaKey", captchaKey
//        ));
//    }
//
//    /**
//     * 清理过期验证码
//     */
//    @Operation(summary = "清理过期验证码", description = "清理所有过期的验证码")
//    @PostMapping("/clean")
//    public ApiResult<Map<String, Object>> cleanExpiredCaptchas() {
//        long cleanedCount = captchaService.cleanExpiredCaptchas();
//
//        return ApiResult.success(Map.of(
//                "success", true,
//                "cleanedCount", cleanedCount,
//                "message", "清理完成，共清理 " + cleanedCount + " 个过期验证码"
//        ));
//    }
//}
